package com.xbaoziplus.simple_spring.beans.factory;

import com.xbaoziplus.simple_spring.beans.BeansException;
import com.xbaoziplus.simple_spring.beans.factory.config.AutowireCapableBeanFactory;
import com.xbaoziplus.simple_spring.beans.factory.config.BeanDefinition;
import com.xbaoziplus.simple_spring.beans.factory.config.ConfigurableBeanFactory;

/**
 * @author xbaozi
 * @version 1.0
 * @interfacename ConfigurableListableBeanFactory
 * @date 2023-05-09  14:05
 * @description 提供分析和修改Bean以及预先实例化的操作接口
 */
public interface ConfigurableListableBeanFactory extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {

    /**
     * @description 通过 beanName 获取 Bean 定义
     * @author xbaozi 
     * @date 2023/5/9 14:05
     * @param beanName  bean 的名称
     * @return BeanDefinition
     **/
    BeanDefinition getBeanDefinition(String beanName) throws BeansException;
}
